package a11_GeneticClass;

/**
 * @Author quan
 * @Description 知识点1：泛型类的定义和使用
 * @Date 2023/3/4 11:20
 */
public class GClassUse<T,E> {
    //T，E表示类型参数：因为这里我希望x和y设置为不同的类型
    //一般的类型参数用T,E,S,(K,V一般表示键值对)表示
    private T x;
    private E y;

    public GClassUse() {
    }

    public GClassUse(T x, E y) {
        this.x = x;
        this.y = y;
    }

    public T getX() {
        return x;
    }

    public void setX(T x) {
        this.x = x;
    }

    public E getY() {
        return y;
    }

    public void setY(E y) {
        this.y = y;
    }

    public static void main(String[] args) {
        //创建类，在具体使用的时候确定x类型为Integer,y的类型为String类型
        GClassUse<Integer,String> gClassUse = new GClassUse<>();
        gClassUse.setX(10);//设置x属性值必须是整型
//        gClassUse.setX(10.2);//传入其他类型报错
        gClassUse.getX();//直接get获取
        gClassUse.setY("fighting!");//设置y的属性值类型为String
        gClassUse.getY();//get直接获取y值
    }
}
